iT邦幫忙

2024 iThome 鐵人賽

DAY 11
0
生成式 AI

LLM 應用、開發框架、RAG優化及評估方法 系列 第 11

Day11 GAI爆炸時代 - LangChain - memory記憶功能

  • 分享至 

  • xImage
  •  

繼上次的LCEL教學後,有沒有對LangChain更上手了呢!
接下來要教學的是如何讓LLM可以記得先前的對話紀錄&如何將記錄存到DataBase中
這邊我將以MongoDB作為我們儲存的資料庫,至於為何會選用MongoDB呢
這邊就讓我留到後面再來做說明哦!

想要建立一個可以持續聊天的chatbot,就必須要讓他能夠記得先前的對話
這邊先來帶個傳統的例子

from langchain_openai import AzureChatOpenAI
from langchain_core.messages import HumanMessage, SystemMessage
from dotenv import load_dotenv
import os

load_dotenv()

chat_model = AzureChatOpenAI(
    azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
    azure_deployment="gpt-4o",
    openai_api_version="2023-03-15-preview",
)
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
str_parser =  StrOutputParser()
test_prompt = ChatPromptTemplate.from_messages(
    [
        ("system","你會回答所有問題, 而且能記得每個問答"),
        ("human","{input}"),
    ])
test_chain = test_prompt | chat_model | str_parser
while True:
    question = input("請輸入問題:")
    if not question.strip():
        break
    response = test_chain.invoke({"input":question})
    print('question:',question)
    print('response:',response)
question: 我叫小明
response: 你好,小明!很高興認識你。今天有什麼我可以幫你解決的問題嗎?
question: 我叫甚麼名字?
response: 你還沒告訴我你的名字。請問你叫甚麼名字呢?
  • 當前瓶頸,沒有記憶功能,無法記得先前聊天訊息

那我們要如何讓LLM記得先前聊天紀錄呢?
就是要依靠我們的memory囉!


上一篇
Day10 GAI爆炸時代 - LCEL 進階介紹
下一篇
Day12 GAI爆炸時代 - LangChain - memory記憶功能
系列文
LLM 應用、開發框架、RAG優化及評估方法 26
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言